백테스트의 구조 - 과거 데이터로 전략 검증하는 방식

 

전략을 믿으려면 먼저 검증해야 한다

3화까지 통합 점수 모델을 설계하는 방법을 다뤘다. 그런데 '이 전략이 정말 효과가 있을까?'라는 의문이 생긴다. 이 질문에 답하는 과정이 바로 백테스트(Backtest)다.백테스트란 현재 생각한 전략을 과거 실행했을 때 어떠한 성과가 발생하는지 테스트해 보는 과정이다. 퀀트 투자는 과거 데이터를 기반으로 전략을 실행하는 투자다. 백테스트는 이 퀀트 투자의 핵심 단계다. 백테스트 결과를 통해 해당 전략의 손익뿐만 아니라 각종 위험을 대략적으로 판단할 수 있기 때문이다. 게다가 어떤 구간에서 전략이 좋았는지 혹은 나빴는지를 알 수도 있다.

 

'지금 내 전략을 10년 전부터 적용했다면 어떤 결과가 나왔을까?'를 시뮬레이션하는 것이라 볼 수 있다. 실제 돈을 쓰기 전 전략을 미리 테스트해 볼 수 있다.

 

백테스트의 구조 - 과거 데이터로 전략 검증하는 방식

☞ 본 글은 투자 정보를 제공하기 위한 목적으로 작성되었습니다. 특정 종목의 매수·매도를 권유하는 글이 아닙니다. 투자 결정은 반드시 본인의 판단과 책임 하에 이루어져야 합니다.

 


 데이터 기반 종목 선정법

1화. 팩터 투자란 무엇인가

2화. 재무·시장 지표 조합 설계

3화. 밸류와 성장 균형: 통합 점수 모델

4화. 백테스트: 과거 데이터로 전략 검증← 현재글

5화. 리밸런싱 전략: 분기별 포트폴리오 회전(예정)

6화. 코스피·코스닥 종목군 팩터 포트폴리오(예정)


 

백테스트가 필요한 이유

감으로 만든 전략과 검증된 전략의 차이는 크다. 백테스트 없이 실전에 뛰어들다 뼈아픈 결과로 이어지는 경우가 많기 때문이다.

2016년부터 2025년까지의 데이터를 돌려보면 단순 골든크로스 전략은 횡보장에서 엄청난 손실을 기록했다. 골든크로스 전략이 무조건 수익을 줄 것이라 믿고 만약 백테스트 없이 투자를 했다면 그 결과는 참혹했을 것이다.

 

백테스트는 여러 시장 환경(상승장, 하락장, 횡보장)에서 전략을 테스트할 수 있다. 어떤 전략이 어떤 환경에서 먹히고 먹히지 않는지를 확인할 수 있기 때문이다. 또한 낙폭 및 손절선 수준을 파악하고 리스크 관리 계획을 수립할 수 있다.

 

 

백테스트의 기본 구조: 4단계

1단계: 전략 정의

먼저 테스트할 전략의 규칙을 명확하게 정해야 한다.

예시

매수 조건: 통합 점수 상위 20% 종목, 업종 내 PER 하위 30%, ROE 10% 이상

매도 조건: 통합 점수가 하위 50%로 떨어지면 매도

리밸런싱 주기: 분기마다 종목 재선정

종목 수: 20개 분산 투자

 

규칙이 모호하면 결과를 해석하기 어렵다. 최대한 조건을 숫자로 명확히 정해야 한다.

 

2단계: 데이터 수집

전략을 테스트할 과거 데이터를 준비한다. 두 종류의 데이터가 필요하다.

주가 데이터: 과거 주가 흐름. 반드시 수정주가를 써야 한다. 수정주가란 배당이나 주식 분할 등을 반영해 조정된 주가다. 수정주가를 쓰지 않으면 결과가 왜곡된다.

재무 데이터: PER, PBR, ROE, 영업이익률 등 각 분기 재무지표. 이 데이터도 반드시 당시 시점의 데이터여야 한다. 지금 알고 있는 정보를 과거에 적용하면 안 된다.

 

백테스트 기간은 가능한 한 장기간 그리고 많은 데이터를 포함하는 것이 바람직하다. 적어도 과거 10년 이상의 데이터를 권장하며 가급적 20년 이상의 기간으로 백테스트하기를 추천한다. 데이터 기간이 길수록 다양한 시장 환경을 포함할 수 있기 때문이다. 2008년 금융위기, 2020년 코로나 폭락, 2022년 금리 급등기 등 위기 구간이 반드시 포함돼야 전략의 진짜 내구성을 알 수 있다.

 

 

3단계: 시뮬레이션 실행

정해진 규칙을 과거 데이터에 순서대로 적용한다. 과거의 특정 시점부터 시작해 매 리밸런싱 주기마다 종목을 선정하고, 그 결과를 누적해 나가는 방식이다.

2010년 1월부터 시작한다면 아래처럼 시뮬레이션할 수 있다.

● 2010년 1월: 통합 점수 상위 20% 종목 20개 매수

● 2010년 4월(1분기 후): 재스크리닝 후 조건 미충족 종목 교체

● 2010년 7월: 동일 반복

● 이를 2024년 말까지 반복

 

이 과정을 통해 전략을 그대로 따랐을 때 얼마나 수익이 났는지, 언제 손실이 컸는지 파악한다.

 

4단계: 성과 지표 분석

시뮬레이션이 끝나면 결과를 해석해야 한다. 이때 '총수익률이 몇 %냐'만 보면 안 된다. 반드시 여러 지표를 함께 봐야 한다.

 

 

백테스트 핵심 성과 지표 5가지

① CAGR - 연평균 복리 수익률

CAGR(Compound Annual Growth Rate)은 전체 투자 기간 동안의 연평균 수익률이다.

10년간 총 수익률 150%라면 연평균 복리 수익은 15%가 아니다. 복리를 감안하면 연평균 약 9.6%가 된다. CAGR은 벤치마크(기준 지수)와 비교해야 의미가 있다. 코스피 지수와 비교해서 내 전략이 더 높은지 확인한다.

 

② MDD - 최대 낙폭

MDD(Maximum Drawdown)는 가장 높았던 수익률 고점에서 가장 낮은 저점까지 얼마나 떨어졌는지를 나타내는 지표다. MDD는 이전 최대 누적 수익률에서 얼마나 떨어지는지를 알려준다. CAGR이 80%지만 MDD가 40%인 전략과 CAGR이 10%지만 MDD가 10%인 전략 중 어떤 것을 선택할지 그 판단 기준을 제공하는 중요 지표다.

 

MDD는 '내가 견딜 수 있는 손실'과 연결된다. 백테스트에서 MDD가 40%라면 실전에서도 -40%까지 떨어질 수 있다는 뜻이다.

MDD 40%가 백테스트 상에서 나왔다면 그냥 그런가 보다 싶을 것이다. 하지만 실제 투자 시 MDD가 20%를 넘어가면 퀀트 투자를 그만두는 분들도 많다. 전략이 아무리 좋아도 내 심리가 MDD를 버티지 못하면 중간에 포기하게 된다. MDD는 수익률만큼 중요하다.

 

③ 샤프 지수 - 위험 대비 수익 효율

샤프 지수(Sharpe Ratio)는 위험을 감수한 만큼 수익을 냈는지 보는 지표다. 샤프 지수는 리스크 조정 수익을 측정하는 지표다. 투자에서 감수한 리스크 대비 상대적 수익의 정도를 나타낸다.

 

샤프 지수가 1 이상이면 괜찮은 전략, 2 이상이면 우수한 전략으로 본다. 수익률이 같아도 변동성이 낮은 전략이 더 높은 샤프 지수를 가진다.

 

④ 벤치마크 대비 초과 수익률 (알파)

내 전략의 수익률에서 코스피 수익률을 빼면 초과 수익률이 나온다. 이를 알파(Alpha)라고 부른다. 내 전략 CAGR이 12%이고 코스피 CAGR이 7%라면 알파는 5%다. 이 5%가 전략이 실제로 만들어낸 부가 가치다.

 

⑤ 승률과 손익비

승률은 리밸런싱 구간 중 수익이 난 구간의 비율이다. 손익비는 평균 수익 금액을 평균 손실 금액으로 나눈 값이다. 승률 60% 이상이면 안정적이다. 손익비 1.5 이상이면 손실보다 수익이 더 크다는 의미다.

 

 

백테스트의 3대 함정

백테스트 결과를 그대로 믿으면 실수한다. 반드시 피해야 할 것들이 있다

①: 생존편향 (Survivorship Bias)

가장 자주 발생하는 오류다.

 

생존편향이란 지금 살아남은 기업 데이터만 사용해서 과거를 평가하는 것이다. 현재 코스피 200에 포함된 기업들로 10년 전을 백테스트하면 어떻게 될까? 10년 전 이 기업들 중 상당수가 현재보다 훨씬 작은 회사였거나 아예 코스피 200에 없었다. 중간에 상장폐지되거나 실적이 악화된 기업은 자연스럽게 제외된다. 결과적으로 '살아남은 우량 기업'만으로 백테스트를 하게 되는 것이다. 수익률이 실제보다 훨씬 좋게 나온다.

 

해결책은 당시 시점의 전체 유니버스 데이터를 쓰는 것이다. 상장폐지 종목도 포함해야 정확하다.

 

②: 최적화 (Overfitting)

과거 데이터에만 너무 완벽하게 끼워 맞춘 전략은 실전에서 무너질 확률이 높다. 단순하고 논리적인 전략이 오래 살아남는다.

파라미터를 수십 개 조정해 가며 '이 조건에서 최고 수익이 나오더라'라는 결론을 찾는 경우다. 이 전략은 과거 데이터에만 맞게 설계된 것이다. 미래에는 같은 결과가 나오지 않는다.

 

해결책은 단순한 전략을 유지하는 것이다. 파라미터가 많을수록 과최적화 위험이 높다.

 

③: 미래 정보 유출 (Look-Ahead Bias)

이것도 자주 범하는 실수다.

2019년 1월에 종목을 선정하는데 2019년 12월 결산 실적을 기준으로 스크리닝 한다면 어떻게 될까? 2019년 1월에는 아직 그 숫자를 알 수 없다. 미래 정보를 과거에 사용하는 셈이다.

 

실제 투자에서는 결산 실적이 발표되고 공시된 날 이후에야 그 데이터를 쓸 수 있다. 백테스트도 반드시 이 시점 규칙을 지켜야 한다.

 

 

백테스트 결과를 어떻게 해석해야 할까?

수익률만 보고 좋은 백테스트 결과인지 판단해서는 안된다.

 

좋은 전략의 기준

● CAGR이 코스피보다 3~5% p 이상 높다

● MDD가 30% 이하다

● 샤프 지수가 1 이상이다

● 다양한 시장 환경(상승·하락·횡보장)에서 고르게 작동한다

● 금융위기, 코로나 등 극단적 하락기를 포함해도 전략이 살아남는다

 

자산 배분 전략 백테스트는 특정 기간의 성과보다는 미래 투자 성공 확률을 높이는데 그 목적이 있다. 그래서 다양한 경제환경을 고려하해야 한다. 하나의 좋은 구간에서만 잘 된 전략이 위험한 이유다. 여러 환경에서 일관성 있게 작동하는 전략이 진짜다.

 

 

백테스트를 할 수 있는 도구들

코딩을 몰라도 백테스트를 할 수 있는 도구들이 있다.

국내 무료 도구

backtest.kr: 코스피·코스닥 종목을 대상으로 월 단위 모의투자 및 전략 검증 가능

인텔리퀀트(intelliquant.ai): 다양한 팩터 조합으로 전략을 설계하고 백테스트 가능

퀀터스(quantus.kr): 간단한 설정으로 팩터 기반 전략 백테스트 가능

데이터 수집처

한국거래소(data.krx.co.kr): 주가 및 재무 지표 과거 데이터 무료 제공

금융감독원 DART(dart.fss.or.kr): 과거 재무제표 공시 데이터

 

처음에는 이런 무료 도구로 시작해도 충분하다.

 

 

백테스트 이후 반드시 해야 할 것

백테스트 결과가 좋다고 바로 실전에 투입하면 안 된다. 한 단계가 더 필요하다. 바로 워크포워드 테스트(Walk-Forward Test)다. 과거 데이터 일부는 전략 개발에 쓰고 나머지 기간은 처음 보는 데이터처럼 전략을 적용해 검증한다. 2010~2018년 데이터로 전략을 만들고 2019~2024년으로 별도 검증하는 방식이다. 이렇게 하면 과최적화 여부를 어느 정도 걸러낼 수 있다.

 

백테스트를 아무리 보수적으로 혹은 엄밀하게 진행하더라도 이미 일어난 결과를 대상으로 하는 것이다. 백테스트는 보장이 아니라 검증이다. 겸손하게 해석해야 한다.

 

 

백테스트의 핵심 구조

4단계 프로세스: 전략 정의 → 데이터 수집 → 시뮬레이션 → 성과 분석

5가지 성과 지표: CAGR, MDD, 샤프 지수, 알파(초과 수익), 승률·손익비

3대 함정 주의: 생존편향, 과최적화, 미래 정보 유출

 

백테스트는 '이 전략이 과거에 통했다'라는 증거를 만드는 과정이다. 완벽하지는 않지만 근거 없이 투자하는 것보다는 훨씬 낫다.

다음 5화에서는 백테스트로 검증된 전략을 실전에서 어떻게 유지할지 다룬다. 리밸런싱 전략 - 분기별 포트폴리오 회전의 실전 기준이 주제다.

 

☞ 본 글은 투자 정보를 제공하기 위한 목적으로 작성되었습니다. 특정 종목의 매수·매도를 권유하는 글이 아닙니다. 투자 결정은 반드시 본인의 판단과 책임 하에 이루어져야 합니다.

댓글 쓰기

0 댓글